﻿using System;
using System.Windows;

namespace UTable.Core.Input
{
    public class FingerEventArgs
    {
        #region Properties

        /// <summary>
        /// The type of this finger event type
        /// See the definition of FingerEventType enum
        /// </summary>
        public FinggerEventType EventType { get; set; }

        /// <summary>
        /// The ID of the user who triggers the finger event
        /// This ID can uniquely mark a user
        /// </summary>
        public int UserID;

        /// <summary>
        /// The name of the device that creates this event
        /// </summary>
        public string DeviceName = String.Empty;

        /// <summary>
        /// The position relative to the coordinate system of the UElement to which this event will be sent.
        /// </summary>
        public Point Position;

        /// <summary>
        /// The position relative to the screen
        /// </summary>
        public Point GlobalPosition;

        /// <summary>
        /// The orientation of the finger values from 0 to 360
        /// All should be 0 except marker
        /// </summary>
        public double Orientation;

        /// <summary>
        /// Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route.
        /// </summary>
        public bool Handled = false;

        /// <summary>
        /// Gets the time when this event occurred
        /// </summary>
        public long Timestamp { get; set; }

        /// <summary>
        /// Mark whether this finger event is captured by an visual node
        /// Set by Input Event Args, and used to dispatch events
        /// </summary>
        internal bool Captured = false;

        #endregion
    }
}
